Applying session services based on packet flows

ABSTRACT

Session services are employed in a networked computing environment to apply specific processing to an exchange of data between processes. In a wireless communication network, a single wireless link is typically shared among multiple users through wireless channels, which are allocated and switched among the users on a demand basis. Packets sent over the wireless link need to be signaled and tagged accordingly to initiate and employ the session service for the intended packets which comprise the flow. A method for identifying and applying session services to a wireless link includes identifying a packet flow over the wireless link corresponding to a received message by employing a flow identifier and filter. The packet flow corresponds to a session, and is mapped to at least one session service. The mapped session service is then applied to the received message. A session service may therefore be transparently applied to a packet flow over a wireless link independently of the other packet flows which may also be transmitted over the wireless link.

RELATED APPLICATION

This application is a continuation of U.S. application Ser. No. 10/166,576, filed Jun. 10, 2002. The entire teachings of the above application are incorporated herein by reference.

BACKGROUND OF THE INVENTION

In a networked computing environment, session services are often employed to apply specific processing to an exchange of data between processes. Such an exchange, or session, usually includes a sequence of packets, also called a packet flow, which share a common context, and which can collectively benefit from the application of one or more session services. Packet flows are typically employed between processes communicating via the network, often in a client/server arrangement. A session service may include, for example, different types of protocol conversion or protocol optimizations, such as proxy services and header compression, and may be transparent to an end user.

Often, a single physical connection, such as a dialup modem line, carries many packets corresponding to a plurality of packet flows. However, a session service is typically applied to the physical connection as a whole. Accordingly, a particular session service is applied to all packets transmitted via the physical connection. Application of the session service does not distinguish among different packet flows carried over the connection. Individual flows, therefore, and the associated processes, may incur the processing overhead associated with a particular session service regardless of whether the session service is needed or desired for the packet flow in question.

In a wireless communication network, a wireless link is typically shared among multiple users through wireless channels, which are allocated and switched among the users on a demand basis by a scheduler. Packets sent over the wireless link need to be signaled and tagged accordingly to initiate and employ the session service for the intended packets which comprise the packet flow. Accordingly, it would be beneficial to provide a mechanism for signaling initiation of a particular session service by the sender and receiver over the wireless link, and for tagging affected packets to indicate which session service to apply to each packet.

SUMMARY OF THE INVENTION

In a wireless communication system, a method for identifying and applying session services to a wireless link comprises establishing a connection including the wireless link and receiving a message for transmission via the connection. A packet flow is identified or established over the wireless link corresponding to the received message by employing a flow identifier and a transmission profile filter. The packet flow corresponds to a session, and is mapped to at least one session service. The mapped session service is then applied to the received message. In this manner, a session service may be transparently applied to a packet flow over the wireless link independently of the other packet flows which may also be transmitted over the same wireless link.

A particular packet flow (flow) is associated with one or more session services to be applied to packets (messages) sent via the flow. The flow is identified either by a flow ID in the message itself, or by matching the message to a transmission profile indicative of characteristics of the flow. The characteristics of the flow establish a packet stream context, or common denominator, of the packets comprising the flow. For example, packets comprising streaming audio information are typically large, while http packets including ACK (acknowledgment) notifications are relatively small. Identification of the packet flow allows complementary session services to be applied at each endpoint of the wireless link, i.e. header compression applied when sending via the wireless link must be decompressed upon receipt.

A traffic flow mapping message is employed to initiate the flow and associate the session service(s) with the flow. Therefore, both endpoints of the wireless link, typically a base station processor (base station) and a subscriber access unit (subscriber) can identify the flow and related session service.

The session services may be identified by reference to a table of applicable session services. Once established, the session service is applied to all packets in the flow. In alternate embodiments, such a table may be stored in a common repository, and thus downloaded from a remote source in a standardized form. Standardization of the session services table would allow widespread dissemination and recognition of the session service identifiers.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.

FIG. 1 shows a wireless communication system employing wireless communication links operable for use with the present invention;

FIG. 2 shows wireless packet flows over a wireless link between a subscriber access unit and a base station processor;

FIG. 3 shows mapping of packet flows to session services in the flow mapper;

FIG. 4 shows a flowchart for mapping packet flows to session services;

FIGS. 5 a and 5 b show an example of a process instantiating a new packet flow; and

FIG. 6 shows downloading of session service identifiers from a common global repository.

DETAILED DESCRIPTION OF THE INVENTION

A description of preferred embodiments of the invention follows.

In a wireless communication network, a wireless link provides a connection between sending process and receiving processes. The wireless link is typically a portion of the entire connection between the sending and receiving process, which also includes wired links on each side of the wireless link. A connection between sending and receiving processes comprises a packet flow. Each packet flow, represents a particular packet flow context indicative of the type of data carried between the processes, such as Internet web pages or streaming audio. There may be multiple connections, and hence, multiple packet flows, between a sending process and a receiving process. Further, each flow may include packets of different sessions between multiple peer processes. Since each flow has a particular packet flow context, indicative of a substantive characteristic of the type of data carried, it may be beneficial to apply a particular session service to each flow.

A session service is a dual ended or peer to peer mechanism that either adds functionality to an existing user data session or provides a new application capability. A session service, therefore, results in an additional processing step applied to or performed on a packet. A session service may provide a protocol optimization, such as header compression, a protocol conversion, such as a TCP proxy service, or a separate application for additional processing, such as QOS (Quality Of Service) processing and verification, or encryption. Other session services may be applied in accordance with the present invention. In a particular embodiment, the TCP proxy service is as defined in copending U.S. patent application Ser. No. 09/850,531, filed May 7, 2001, entitled “Dual Proxy Approach to TCP Performance Improvements Over a Wireless Interface,” which was published on Dec. 25, 2003 as U.S. patent application Publication No. 2003/0235206 and incorporated herein by reference. In a wireless communications network, the session service may be applicable only to the flow over the wireless link, or may be applicable to the entire connection, and carried through (continuous) from the wired links over the wireless link.

FIG. 1 shows a wireless communication system 10 employing wireless communication links operable for use with the present invention. Referring to FIG. 1, a plurality of subscriber access units 14 a-14 c are in wireless communication with a base station processor 16 (base station) via wireless links 22. The base station 16 is also in communication with a data network such as the Internet 18 via a wired link 20. The subscribers 14 provide wireless Internet access to customer premises equipment (CPE) 32 generally, such as desktop PCs 32 a, 32 c, personal digital assistants (PDAs) 32 b and wireless phones 32 d through wired links 24. It should be noted that the wireless functionality provided by the subscriber access unit 14 may be in a stand alone device or embedded in the CPE 32 unit invoked by a user 32′. In either case the CPE 32 is operable to communicate with the Internet 18, and thus with remote nodes 26, via the base station 16 by employing the wired links 20, 24 and the wireless links 22.

FIG. 2 shows wireless packet flows over a communication link between a subscriber 14 and a base station 16. Referring to FIG. 2 and also to FIG. 1, the wireless link 22 between the subscriber 14 and the base station 16 further comprise packet flows 28. A packet flow 28 corresponds to one or more sessions over the wireless link 22, and is part of the connection (session) between processes which includes the wired links 20, 24. Each of the sessions in the packet flows 28 corresponds to a process P1, P2, or P3 at the subscriber 14. A complementary process P1′, P2′ and P3′, either a sender or receiver, resides at a remote end of the connection on one of the remote nodes 26. A flow mapper 30 resides in the subscriber 14 and in the base station 16, at each endpoint of the wireless link 22, for assigning and determining the packet flow corresponding to each message packet, and for applying the respective session service, both described further below.

It should be noted that a packet flow includes packets that are related due to sharing a common denominator, such as a particular type of content. A packet flow, as described above, therefore may include packets corresponding to one or more sessions between peer processes. The term “session” denotes a connection between two application processes, between which packets are related because of a common source and destination. The correspondence between sessions and packet flows is typically dependent on the protocol and processes so communicating, and includes parameters such as source address, destination address, source port, destination port, and protocol in a TCP connection, for example (sometimes called a 5-tuple). Other packet flow/session mappings may be known to those skilled in the art. Accordingly, the packets sent in conjunction with the session may fall into one or more of the packet flows, as described further below with respect to applying session services to the flow.

Therefore, connections are established between each of the processes and their complementary counterparts: P1-P1′, P2-P2′, and P3-P3′, employing the wired 20, 24 and wireless 22 links. Message packets sent over the wireless link 22 from one process to another are assigned to a flow 28 by the flow mapper 30 on the sending side of the wireless link 22, and identified as belonging to that flow 28 by the flow mapper 30′ on the receiving side. The flow mapper 30 on the sending side applies the session service(s) associated with the assigned (determined) flow, and the flow mapper 30′ on the receiving side also applies the session service(s) associated with the determined flow.

As described above, the flow mapper 30, 30′ resides on both endpoints of the wireless link, at the subscriber 14 and the base station 16, and identifies packets as received from the wired link 20, 24 or the wireless link 22. When a packet is received from the wireless link 22, it already has a flow ID appended to it by the sender, either the subscriber 14 or base station 16. The received flow ID is mapped to a list of known flow IDs to determine the flow, and hence determines the session services associated with that flow.

If the packet is received from the wired side, the corresponding flow must be determined. A flow profile table, described further below, is employed to match the characteristics of the message to a known profile of packet flows using a filter. Factors such as originator IP address, destination IP address, TCP/IP port number, proxy ID, and others may be employed to match the packet to a flow via the filter. If the flow is determined, the corresponding flow ID is appended to the packet, in addition to applying the session services associated with the flow.

Flows requiring special processing provided by the session services are therefore enumerated in the flow table. Packets not matching a particular flow are deemed not to require special processing and therefore will not trigger application of session services. However, such packets will nonetheless be delivered to the proper destination via packet routing independently of application of session services as defined herein. Alternatively, a wildcard, or “catch all” entry (filter) may be added to the transmission profile table to cover packets which do not trigger other entries.

New flows may instantiated by a variety of ways. A particular application may have a need for a specific type of processing. Session service tables and the corresponding transmission profile table entries may be downloaded from an external source, described further below. Alternatively, failure to find a match in the transmission profile table would be employed to initiate creation of a new transmission profile entry. If a new flow is instantiated, the flow ID is determined from the new flow, and a traffic flow signaling message is employed to transmit the new flow information across the wireless link 22 to the receiving flow mapper 30′.

FIG. 3 shows mapping of packet flows to session services in the flow mapper 30. Referring to FIG. 3, the tables included in the flow mapper are shown. The flow mapper 30 includes a flow table 200, a transmission profile table 202, and a session services table 204. The flow table 200 identifies the packet flows by flow ID 206. A process field 208 may be employed to identify the local process or processes to which it corresponds, however the packet routing information such as the port number is actually used for delivery. Also indicated are the filter 210 describing the packet flow. The transmission profile table 204 has transmission parameters 212 which describe each packet flow. The transmission parameters 212 describe the profile of each packet flow so that the packets in the flow may be identified by content, and includes a profile entry 216 for each packet flow. The transmission parameters illustrated include filter ID (FID) 214 a, type 214 b, source IP address 214 c, destination IP address 214 d, Port ID 214 e, TCP/IP transmission flags 214 f, and flow direction 214 g. The transmission parameters shown are illustrative; alternate embodiments may employ filters with alternative fields and/or information. Each profile entry 216 also includes a list 218 of session services to be applied to the flow 206. Each element in the list 218 contains a session service index 220 into the session services table 204, which indicates the applicable session service 222. The session service table 204 contains session service entries 224, referenced by session service index 220, described further below. Note that the session service index 220 in the session service list 218 is shown as illustrative. Other mechanisms for associating the session services 222 to a profile entry 216 can be implemented and will be apparent to those skilled in the art, such as inclusion of session services 222 directly in the transmission profile table 202 or alternate pointer or array referencing, depending on a particular implementation.

Therefore, the applicable session service 222 to be applied to a particular message packet is determined in the flow mapper 30 by identifying the flow through either the flow ID 206 or profile entry 216, and mapping from the profile entry 216 to the corresponding session service entries 224, indicative of the session service(s) 222 to be applied. As indicated above, the message packets mapped by the flow mapper 30 include incoming and outgoing message packets. Message packets received over the wireless link (22, FIG. 2) from a remote flow mapper 30 have a flow ID 206 identified and append to the message packet, allowing a lookup in the flow table 200. Message packets received from the wired link 20, 24 for transmission over the wireless link 22 are identified by matching a profile entry 216 in the transmission profile table 202. The flow mapper 30 illustrated is shown from the perspective of the subscriber 14 for illustrative purposes, and is equally applicable to either endpoint of the wireless link 22.

FIG. 4 shows a flowchart for mapping packet flows to session services. Referring to FIGS. 4 and 2, an incoming packet is detected by the flow mapper 30, as depicted at step 100. A check is performed to determine if the incoming packet was received from the wireless link 22 or a wired link 20, 24, as shown at step 102. As described above, the flow mapper 30 resides on both endpoints of the wireless link 22. If the packet was received from the wireless link 22, then the flow ID was appended to the message prior to transmission. A lookup is performed in a flow table to match the packet to a packet flow, as disclosed at step 104. The flow ID is indexed into the session service table, as shown at step 120. The corresponding session service is determined, as shown at step 122, and applied to the message packet, as shown at step 124. The packet is then sent to the corresponding process P1-P3 via the wired link 24, as shown at step 126.

If the packet was received from the wired link 20, 24, then a comparison is performed with the message packet characteristics in a transmission profile table, as depicted at step 106, also described further below. A check is performed to determine if a match was found in the transmission profile table, as shown at step 108. If a match was not found, then either session services are not required for this packet, or a new flow entry is created, through an exchange of traffic flow signaling messages, as depicted at step 110 and described above with respect to FIG. 3. If a match was found, the flow ID is read from the transmission profile table, as depicted at step 111. In either case, the newly created or found flow ID is appended to the message, as disclosed at step 112. The corresponding session service is indexed in the session service table, as shown at step 114, and applied to the message packet, as depicted at step 116. The message is then sent over the wireless link 22 as a packet of the determined flow, as shown at step 118, for receipt by the remote flow mapper 30.

It should be noted that the flow ID determined prior to sending the wireless transmission is determined as described above and appended to the message prior to transmission. The flow Id may be appended in a variety of ways known to those skilled in the art. In a particular embodiment, the flow ID is encapsulated in an additional packet header which includes the flow ID. Other implementation protocols may be employed. Upon receipt of the wireless transmission, the flow ID is stripped off to yield the packet in it's form prior to wireless transmission. In this manner, the flow ID may be appended and removed from the message packet without interfering with the other delivery and data fields in the packet.

FIGS. 5 a and 5 b show an example of a process instantiating a new packet flow. Referring to FIGS. 5 a, 5 b, and again to 2, process P1 desires to initiate a streaming video request. Process P1 generates a message packet 300 indicative of the request, and forwards it via the wired link 24 to the subscriber 14. The flow mapper 30 receives the message packet 300 and attempts to find a corresponding profile entry 216 in the transmission profile table 202. No match is found, so the flow mapper 30 determines it will instantiate a new packet flow in the flow mapper 30. A new flow profile entry 226 is generated for the streaming video requests, indicative of the remote destination in field 214 d′, and is assigned filter FID 106. As these requests are deemed to be relatively small, the header compression system service is selected. A system service index 218 a is created to indicate the system service 222 for header compression, as shown by system service index 218 SS3.

A new flow profile entry 228 is also created for the return streaming video message packets which will be received, having filter FID 107 has a source ID field 214 c′ of the streaming video source matching 214 d′. A system service for RT QOS (Quality of Service) processing is selected. As there is no system service 222 entry for RT QOS yet, a new entry 224 is created for system service index 218 b for SS4, and is associated with the flow profile entry 228. The RT QOS system service is exemplary; alternative system services for applying flow specific processing or operations could likewise be employed.

The flow mapper 30 generates a traffic flow signaling message 302 to send to the base station 16 indicative of the new flows F4 and F5. Following the traffic flow signaling message, which establishes the complementary system service processing at the remote flow mapper 30′, the streaming video request message 300 is framed for transmission 304 via the wireless link. After processing via the remote destination 214 d′, a streaming video packet 306 is received by the base station 16. The base station, consistent with the traffic flow signaling, matches the source of the message with the flow profile entry 228. The flow mapper 30′ appends the flow ID F5 to the message 308, and sends it over the wireless link 22 to the subscriber 14. The flow mapper 30 in the subscriber 14 reads the flow ID F5, finds the corresponding flow ID 206 in the flow table 200, and maps it to system service index SS5 for RT QOS processing.

Another streaming video request 310 is sent from process P1, and a corresponding match found for FID 106 in the in the transmission profile table. Accordingly, system service index 218 a is found to indicate header compression, applied to the request, and sent as message packet 312 via flow F4. System service flow mapping continues in this manner until the flow is no longer needed and the corresponding entries updated with another sequence of traffic flow signaling messages.

In an alternate embodiment, shown in FIG. 6, the system service indices 220 are standardized in a system service table 204 stored in a common repository 230. The common repository is accessible via the Internet 18, and is employed to download a current version of the system service table 204 and versions of the system services themselves on a periodic basis. The common repository could be a Wireless Internet Facility (WIF), LDAP directory, or other web service accessible by the subscribers 14 and the base stations 16. A plurality 16 a-16 n of base stations may access and download the system service table 204 from the common repository 230. The base stations 16 a-16 n each transmit the downloaded system service table 204 and related files to each of the subscribers 14 a-14 n which they are in communication with. In this manner, a standardized index for each of the applicable system services is maintained across the wireless communication system 10.

System services may vary in complexity and depth of implementation. Accordingly, executable files and other implementation details may undergo revisions and modifications for the same session service. Periodic downloads from a common repository to upgrade and or add system services may occur. Further, additional flow profile entries (filters) may also be added to correspond to or identify a new session service or new need for a session service. In this instance, the flow profile table may be downloaded from the common repository as well. For a large service provider, there may be many flow mapper 30, 30′ implementations deployed among many sites. Automatic, periodic downloading of a current state of system services therefore provides timely consistency among the many flow mappers 30, 30′ which employ the system services.

The method of applying system services as described herein associates incoming packets to packet flows. The matching of message packets to flow profiles need not exactly match every packet in the flow to avoid disrupting the flow. Other mechanisms ensure delivery of the message packets to the intended recipients. Application of session services is intended to improve throughput by applying operations which tend to reduce overhead and increase the speed at which a packet is routed. If, for example, a packet between two processes which should have triggered a profile for header compression did not conform to the profile, that message packet would still be delivered, albeit without the benefit of header compression. If, however, a session service is applied at the sending side of the wireless link, then the flow ID would be appended and the complementary session service, such as decompressing the header, would be applied. Accordingly, while not all packets between two processes may necessarily be matched to a particular flow profile for sending over the wireless link, the packets that were matched, and thus processed in accordance with the system service at the sending side of the wireless link, would receive the complementary treatment at the receiving side of the wireless link. Therefore, the session services as defined herein are applied consistently at both endpoints of the wireless link. Further such services may be unilateral, and performed at one point along a wireless link, or bilateral, and applied in a complementary manner at both endpoints of the wireless link.

Those skilled in the art should readily appreciate that the system and methods for applying system services as defined herein are deliverable to a wireless device in many forms, including but not limited to a) information permanently stored on non-writeable storage media such as ROM devices, b) information alterably stored on writeable storage media such as floppy disks, magnetic tapes, CDs, RAM devices, and other magnetic and optical media, or c) information conveyed to a computer through communication media, for example using baseband signaling or broadband signaling techniques, as in an electronic network such as the Internet or telephone modem lines. The operations and methods may be implemented in a software executable by a processor or as a set of instructions embedded in a carrier wave. Alternatively, the operations and methods may be embodied in whole or in part using hardware components, such as Application Specific Integrated Circuits (ASICs), state machines, controllers or other hardware components or devices, or a combination of hardware, software, and firmware components.

While this invention has been particularly shown and described with references to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims. 

1. A method for identifying and applying session services to data packets, the method comprising the steps of: generating a first transmission profile wherein the first transmission profile contains information that maps data packets transferred onto a wireless link with a first set of session services; generating a second transmission profile wherein the second transmission profile contains information that maps data packets received on the wireless link with a second set of session services; and sending a traffic flow mapping message to an opposing end of the wireless link, wherein the traffic flow mapping message includes the second transmission profile.
 2. A method as defined in claim 1 further comprising the steps of: establishing a flow identifier (ID) that identifies a new data packet flow on the wireless link; and placing the flow ID in the traffic flow mapping message.
 3. A method as defined in claim 2 further comprising the steps of: receiving a message for transmission via the connection; and identifying a transmission profile associated with the received message.
 4. A method as defined in claim 3 further comprising the step of: using the identified transmission profile to identify a session service associated with the received message.
 5. A method as defined in claim 4 further comprising the step of: applying the identified session service to the received message.
 6. A method for associating a session service with a data packet flow, the method comprising the steps of: receiving a traffic flow mapping message, the traffic flow mapping message containing information that identifies the data packet flow and an associated session service to be applied to packets associated with the data packet flow; and updating a flow table with the data packet flow and the associated session service information contained in the traffic flow mapping message wherein the flow table is operable to associate the session service with the data packet flow.
 7. An apparatus for identifying and applying session services to data packets, the apparatus comprising: a wireless link; and a flow mapper configured to: (a) generate a first transmission profile wherein the first transmission profile contains information that maps packets transferred onto the wireless link with a first set of session services, (b) generate a second transmission profile wherein the second transmission profile contains information that maps packets received on the wireless link with a second set of session services, and (c) send a traffic flow mapping message to an opposing end of the wireless link, the traffic flow mapping message including the second transmission profile.
 8. An apparatus as defined in claim 7 wherein the flow mapper is further configured to: (a) establish a flow identifier (ID) that identifies a new packet flow on the wireless link, and (b) place the flow ID in the traffic flow mapping message.
 9. An apparatus as defined in claim 7 wherein the wireless link is included in a connection between the apparatus and the opposing end.
 10. An apparatus as defined in claim 9 wherein the flow mapper is further configured to: (a) receive a message for transmission via the connection, and (b) identify a transmission profile associated with the received message.
 11. An apparatus as defined in claim 10 wherein the flow mapper is further configured to use the identified transmission profile to identify a session service associated with the received message.
 12. An apparatus as defined in claim 11 wherein the flow mapper is further configured to apply the identified session service to the received message.
 13. A computer readable medium comprising computer executable instructions for: generating a first transmission profile wherein the first transmission profile maps data packets transferred onto a wireless link with a first set of session services; generating a second transmission profile wherein the second transmission profile maps data packets received on the wireless link with a second set of session services; and sending a traffic flow mapping message to an opposing end of the wireless link, the traffic flow mapping message including the second transmission profile.
 14. A computer readable medium as defined in claim 13 further comprising executable instructions for: establishing a flow identifier (ID) that identifies a new data packet flow on the wireless link; and placing the flow ID in the traffic flow mapping message. 